home *** CD-ROM | disk | FTP | other *** search
- 1000 ' *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*
- 1010 ' =
- 1020 ' = ***TELLTIME*** =
- 1030 ' = =
- 1040 ' *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--==*
- 1050 '
- 1060 '
- 1070 ' *** SETUP ***
- 1080 '
- 1090 DEFINT A-Z: DEFSNG P
- 1100 KEY OFF: SCREEN 1, 0, 0, 0: COLOR 0, 1
- 1110 PI = 3.141593
- 1120 RANDOMIZE VAL(MID$(TIME$, 7))
- 1130 '
- 1140 ' *** Randomly selects time to draw ***
- 1150 '
- 1160 HR = RND * 12 MOD 12 + 1
- 1170 MIN = (HR + RND * 11 MOD 11) MOD 12 + 1
- 1180 '
- 1190 ' ***Draw graphics ***
- 1200 '
- 1210 CLS
- 1220 CIRCLE (230, 100), 2, 3
- 1230 CIRCLE (230, 100), 80, 1
- 1240 H = (15 - HR) MOD 12
- 1250 HANGLE! = H * -2 * PI / 12 + (MIN + 12 * (MIN > 6)) * PI / 72
- 1260 IF HANGLE! > 0 THEN HANGLE! = HANGLE! - 2 * PI
- 1270 CIRCLE (230, 100), 50, 1, HANGLE! + .02, HANGLE! - .02
- 1280 M = (15 - MIN) MOD 12
- 1290 MANGLE! = M * -2 * PI / 12
- 1300 CIRCLE (230, 100), 70, 2, MANGLE! + .02 + 2 * PI * (M = 0), MANGLE! - .02
- 1310 '
- 1320 ' *** Print title of program and numbers on face ***
- 1330 '
- 1340 LOCATE 2, 17: PRINT "TELLTIME"
- 1350 LOCATE 4, 29: PRINT "12"
- 1360 LOCATE 5, 24: PRINT "11": LOCATE 5, 35: PRINT "1"
- 1370 LOCATE 9, 19: PRINT "10": LOCATE 9, 39: PRINT "2"
- 1380 LOCATE 13, 19: PRINT "9": LOCATE 13, 40: PRINT "3"
- 1390 LOCATE 17, 20: PRINT "8": LOCATE 17, 39: PRINT "4"
- 1400 LOCATE 21, 24: PRINT "7": LOCATE 21, 35: PRINT "5"
- 1410 LOCATE 22, 30: PRINT "6"
- 1420 '
- 1430 ' ***Randomly arranges the time choices ***
- 1440 '
- 1450 C = RND * 3 MOD 3 + 1
- 1460 ch(C) = HR
- 1470 cm(C) = MIN
- 1480 D = (C + RND * 2 MOD 2) MOD 3 + 1
- 1490 ch(D) = MIN
- 1500 cm(D) = HR
- 1510 E = 6 - C - D
- 1520 ch(E) = HR
- 1530 cm(E) = 12 - MIN
- 1540 IF cm(E) MOD 6 = 0 THEN cm(E) = cm(E) + 6
- 1550 '
- 1560 ' ***Print three possible answers ***
- 1570 '
- 1580 LOCATE 6, 1: PRINT "WHAT TIME IS IT?"
- 1590 FOR j = 1 TO 3
- 1600 LOCATE j * 4 + 6, 1
- 1610 PRINT "("; CHR$(64 + j); ")";
- 1620 GOSUB 2130
- 1630 NEXT
- 1640 LOCATE 24, 2: PRINT " HIT KEY A, B, or C"; : LOCATE 24, 27: PRINT "(ESC TO EXIT)";
- 1650 RESP$ = INKEY$: IF RESP$ = "" THEN 1660 ELSE IF RESP$ = CHR$(27) THEN GOTO 2250 ELSE GOTO 1670
- 1660 FOR A = 1 TO 300: NEXT
- 1665 SOUND 18000, .03
- 1666 GOTO 1650
- 1670 LOCATE 24, 1: PRINT SPC(39);
- 1680 ANS = (ASC(RESP$) OR 32) - 96
- 1690 IF ANS > 0 AND ANS < 4 THEN 1810
- 1700 '
- 1710 ' ***Unacceptable input rejected ***
- 1720 '
- 1730 LOCATE 24, 1: PRINT " A, B, or C, PLEASE";
- 1740 FOR j = 1 TO 6
- 1750 SOUND 50 * (j MOD 2 + 1), 5
- 1760 NEXT
- 1770 GOTO 1640
- 1780 '
- 1790 ' *** Acceptable input, draw eyes and mouth ***
- 1800 '
- 1810 CIRCLE (200, 85), 20, 1 - (ANS <> C), 3 * PI / 8, 5 * PI / 8
- 1820 CIRCLE (260, 85), 20, 1 - (ANS <> C), 3 * PI / 8, 5 * PI / 8
- 1830 IF ANS = C THEN 1980
- 1840 '
- 1850 ' ***Wrong answer routine ***
- 1860 '
- 1870 SOUND 40, 40
- 1880 CIRCLE (230, 200), 80, 1, (3 * PI / 8), (5 * PI / 8)
- 1890 LOCATE 23, 1: PRINT SPC(6); CHR$(ANS + 64); " IS WRONG "
- 1900 PRINT "THE CORRECT ANSWER IS "; CHR$(64 + C);
- 1910 FOR j = 1 TO 6000
- 1920 NEXT
- 1930 NUMWRONG = NUMWRONG + 1
- 1940 GOTO 1160
- 1950 '
- 1960 ' ***Right answer routine ***
- 1970 '
- 1980 LOCATE 24, 1
- 1990 j = 0
- 2000 FLG = 0
- 2010 PRINT "CORRECT!!!!";
- 2020 CIRCLE (230, 100), 50, 2, (10 * PI / 8), (14 * PI / 8)
- 2030 FOR j = 1000 TO 4000 STEP 80
- 2040 SOUND j, .04
- 2050 NEXT
- 2060 FOR j = 1 TO 2000
- 2070 NEXT
- 2080 NUMRIGHT = NUMRIGHT + 1
- 2090 GOTO 1160
- 2100 '
- 2110 ' ***Time printing subroutine ***
- 2120 '
- 2130 IF cm(j) = 12 THEN 2200
- 2135 cm5(j) = cm(j)
- 2140 IF cm(j) > 6 THEN ch1(j) = ch(j) - 1 ELSE ch1(j) = ch(j)
- 2150 cm55 = (cm5(j) * 5)
- 2155 IF ch1(j) = 0 THEN ch1(j) = 12
- 2156 IF cm55 = 5 THEN 2195
- 2160 PRINT ch1(j); ":"; cm55
- 2190 GOTO 2210
- 2195 cm55$ = "05"
- 2196 PRINT ch1(j); ":"; cm55$
- 2197 GOTO 2210
- 2200 PRINT ch(j); "O'CLOCK ";
- 2210 RETURN
- 2220 '
- 2230 ' ***Ending program ***
- 2240 '
- 2250 CLS : LOCATE 12, 10
- 2260 IF NUMRIGHT < NUMWRONG THEN 2280
- 2270 PRINT "VERY GOOD,you answered": GOTO 2290
- 2280 PRINT "TOO BAD, you answered"
- 2290 LOCATE 13, 10: PRINT NUMRIGHT; "right and"; NUMWRONG; "wrong.";
- 2300 FOR j = 1 TO 3500: NEXT j
- 2310 LOCATE 20, 18: PRINT "BYE !"
- 2320 PLAY "MB T120 O4 L16 G P64 L14 C E L8 G"
- 2330 FOR j = 1 TO 1000: NEXT j
- 2340 SYSTEM
-
-